#include <iostream>

using namespace std;
const int N=1e3+10;

int a[N][N];
int f[N*N];
int Find(int x)
{
	if(f[x]!=x)
	{
		f[x]=Find(f[x]);
	}
	return f[x];
}

void Union(int x,int y)
{
	x=Find(x);
	y=Find(y);
	f[x]=y;
}
int main()
{
	int n,m,q;
	cin>>n>>m>>q;
	for(int i=1;i<=n*m;i++)
		f[i]=i;
	while(q--)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		Union(x,y);
	}
	
	int ret=0;
	for(int i=1;i<=n*m;i++)
	{
		if(Find(i)==i)
		{
			ret++;
		}
	}
	cout<<ret<<endl;
	return 0;
}
